const mongoose = require('mongoose');

// 地址子文档 Schema
const addressSchema = new mongoose.Schema({
  addressId: { type: String, required: true }, // 地址唯一标识
  receiver: { type: String, required: true }, // 收件人
  phone: { type: String, required: true }, // 收件人电话
  address: { type: String, required: true }, // 详细地址
  isDefault: { type: Boolean, default: false } // 是否默认地址
});

// 积分明细子文档 Schema
const pointDetailSchema = new mongoose.Schema({
  detailId: { type: String, required: true }, // 明细唯一标识
  change: { type: Number, required: true }, // 积分变动值（正：增加，负：减少）
  type: { type: String, required: true }, // 变动类型（如 "兑换"、"奖励"）
  time: { type: Date, default: Date.now }, // 变动时间
  orderId: { type: String } // 关联订单 ID（可选）
});

// 用户主 Schema
const userSchema = new mongoose.Schema({
  username: { type: String, required: true, unique: true }, // 账号（唯一）
  password: { type: String, required: true }, // 密码（用户要求不加密）
  nickname: { type: String, required: true }, // 昵称
  phone: { type: String, required: true, unique: true }, // 手机号（唯一）
  points: { type: Number, default: 0 }, // 当前积分（默认 0）
  email: { type: String }, // 邮箱（可选）
  addressList: [addressSchema], // 地址列表（数组）
  pointDetails: [pointDetailSchema] // 积分明细（数组）
});

module.exports = mongoose.model('User', userSchema);